// 导入模块
import Request from 'luch-request'
import { useUserStore } from '@/stores/user'
// 实例化网络请求
const request = new Request({
  // 接口基地址
  baseURL: 'https://consult-api.itheima.net',
  custom:{loading:true}
})
const whiteList = ['/code', '/login', '/login/password']
 // 2. 配置请求拦截器
request.interceptors.request.use((config)=>{
  if(config.custom?.loading){
    uni.showLoading({
      title:'拼命加载中...'
    })
  }
   // 2.1 统一携带token
     // 2.1 统一携带token
  const store = useUserStore()
  if(store.token && !whiteList.includes(config.url!)){
    config.header!.Authorization = `Bearer ${store.token}`
  }
  return config
},(error)=>{
  return Promise.reject(error)
})
// 3. 配置响应拦截器
request.interceptors.response.use((res)=>{
  uni.hideLoading()
  
  //3.1请求成功单业务失败
  if(res.data.code !== 10000){
    uni.showToast({
      title:res.data.message || '业务失败',
      icon: 'none',
    })
    return Promise.reject(res.data)
  }
   //3.2 请求成功且业务成功
 
   return res.data.data
},(error)=>{
  uni.hideLoading()
  if(error.statusCode  === 401){
    uni.showToast({
      title:error.data.message,
      icon: 'none',
    })
    uni.redirectTo({
      url: '/pages/login/index'
    })
  }
  return Promise.reject(error)
})

// 导出配置好的模网络模块
export { request }